package edu.object_oriented.interfacePra;


/**
 * 接口    不属于类概念
 *    类： 属性  与  具体的方法
 *    接口 ： 一般值定义操作，不定义实现
 *          主要通过定义抽象方法 实现 约束
 *          不能直接使用，必须定义实现类
 *          接口可以多实现
 *    抽象方法,接口中的抽象方法不需要写abstract，默认系统自动加
 */
public interface ScoreDao {
    //抽象方法  public abstract
    Student getStudentInfo(int num);

    void updateScore(int num,int score);


    //定义常量   默认使用  public static final
    public static final int sum = 100;
    int U = 2;

    //静态方法   public 默认修饰
    static void say(){
        System.out.println("接口中现在可以书写静态方法");
    }

}
//implements  实现  相当于继承
class ScoreDaoImpl implements ScoreDao{

    //实现类  实现  接口   实现接口中的抽象方法
    @Override
    public Student getStudentInfo(int num) {
        System.out.println("根据学号查询学生信息");
        return new Student();
    }

    @Override
    public void updateScore(int num, int score) {
        System.out.println("根据学号修改学生成绩");
    }
}

class InterfaceTest{
    public static void main(String[] args) {
//        ScoreDao scoreDao = new ScoreDao();
        //多态的向上转型
        ScoreDao scoreDao = new ScoreDaoImpl();
        scoreDao.getStudentInfo(205555);
    }
}



class A{
    //根据学号查询学生信息
    public Student getStuInfo(int num){
        //实现逻辑  可能  会 出现多种情况
        return new Student();
    }
}

class Student{

}